﻿using CefSharp.DevTools.DOM;
using CommunityToolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace KeZhou.ViewModels
{
    partial class PhoneCodeViewModel : ObservableObject
    {
        private static PhoneCodeViewModel instance;
        public static PhoneCodeViewModel Instance
        {
            get
            {
                return instance ?? (instance = new PhoneCodeViewModel());
            }
        }


        //获取验证码
        //注意有注册验证码和找回密码验证码
        //用户可能先注册，发现手机已经被注册过于是找回密码
        //注意同时检查手机号和验证码，用户更改输入容易造成信息错乱
        //前后端不分离的话做不到token规定时间内有效
        //考虑通过手机号发送验证码、通过手机号和验证码检查是否正确全部调接口
        //调接口的时候要注意上面说的注册验证码、找回验证码的区别
        public bool getCodeByPhone(string phoneNum, int mode)
        {
            bool result = sendCodeCheck(phoneNum, mode);
            return result;
        }

        private bool sendCodeCheck(string phoneNum, int mode)
        {
            using (HttpClient client = new HttpClient())
            {
                // 构建请求参数
                var requestData = new Dictionary<string, string>
        {
            { "phoneNum", phoneNum },
            {"mode", mode.ToString() },
        };

                // 构建请求地址
                string requestUrl = "http://www.yym-free.com:4514/kezhou/cloud/getPhoneCode";

                // 发送POST请求
                HttpResponseMessage response = client.PostAsync(requestUrl, new FormUrlEncodedContent(requestData)).Result;

                // 检查响应是否成功
                if (response.IsSuccessStatusCode)
                {
                    // 解析并返回响应内容，这里假设返回的是整数
                    bool result = bool.Parse(response.Content.ReadAsStringAsync().Result);
                    return result;
                }
                else
                {
                    // 处理请求失败的情况，可以根据需要进行适当的处理
                    Console.WriteLine("HTTP POST请求失败：" + response.StatusCode);
                    return false; // 返回一个适当的错误码
                }
            }
        }
    }
}
